package br.ufc.great.xml;

import java.util.Vector;

/**
 * 
 * @author Leonardo Oliveira Moreira
 *
 * Classe que representa um nodo do documento XML
 */
public class XMLNode extends XMLElement {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7516845629777554868L;

	private Vector<XMLAttribute> attributes = new Vector<XMLAttribute>();
	private Vector<XMLNode> children = new Vector<XMLNode>();
	
	/**
	 * Construtor
	 * 
	 * @param id
	 * @param parent
	 */
	public XMLNode(long id, XMLNode parent) {
		super(id, parent);
		this.parent = parent;
	}
	
	/**
	 * Construtor
	 * 
	 * @param id
	 * @param parent
	 * @param name
	 * @param value
	 */
	public XMLNode(long id, XMLNode parent, String name, String value) {
		super(id, name, value, parent);
		this.parent = parent;
	}

	/**
	 * Método utilizado para retornar a lista de atributos
	 * 
	 * @return
	 */
	public Vector<XMLAttribute> getAttributes() {
		return attributes;
	}

	/**
	 * Método utilizado para configurar a lista de atributos
	 * 
	 * @param attributes
	 */
	public void setAttributes(Vector<XMLAttribute> attributes) {
		this.attributes = attributes;
	}

	/**
	 * Método utilizado para retornar a lista de filhos
	 * 
	 * @return
	 */
	public Vector<XMLNode> getChildren() {
		return children;
	}

	/**
	 * Método utilizado para configurar a lista de filhos
	 * 
	 * @param children
	 */
	public void setChildren(Vector<XMLNode> children) {
		this.children = children;
	}
	
	/**
	 * Método utilizado para adicionar um nodo filho
	 * 
	 * @param node
	 */
	public void addChildren(XMLNode node) {
		children.add(node);
	}

}
